System and method for aggregation and comparison of multi-tab content

ABSTRACT

Methods, systems, and apparatus for facilitating a comparison of content in a user interface are described. Two or more open browser interfaces of a browser are identified, each of the two or more open browser interfaces containing an item description of one or more items. The browser interfaces include at least one of a tab of the browser or a window of the browser. One or more features related to each of the one or more items from at least two of the item descriptions are extracted or identified. The comparison for a plurality of items is generated based on the extracted or identified one or more features. The comparison of the plurality of items is displayed within at least one of the browser interfaces.

TECHNICAL FIELD

The present application relates generally to user-interface enhancementand, in one example, the facilitation of user navigation in displayscreens. More specifically, embodiments of the invention relate to asystem and method for aggregating content identified on a plurality oftabs in a browser and generating a display of a comparison of aspects ofthe aggregated data in a user interface.

BACKGROUND

Online user navigation typically involves opening a new browser windowor tab to access fresh content. When searching online for a particularitem, the user may open a number of tabs on their browser to compare andcontrast items he or she may find online based on, for example, a model,a make, a size, a price, and so forth. The user may also open tabs foritems that are provided from different websites. This process ismanually driven, difficult, and can be very time-consuming. Often, theuser may lose track of which tab or window includes the items he or sheis interested in.

Accordingly, managing and viewing content on multiple tabs can beonerous for a user when seeking to compare various aspects of contentincluded in each tab, especially when a detailed comparison of thecontent is required.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are illustrated by way of example and not limitation inthe figures of the accompanying drawings, in which:

FIG. 1A is a network diagram depicting a client-server system, withinwhich one example embodiment may be deployed;

FIG. 1B is a block diagram illustrating example publication marketplaceand payment applications, in accordance with an example embodiment;

FIG. 1C shows a block diagram of an example system for aggregating andcomparing multi-tab content in accordance with an example embodiment;

FIG. 2 shows a flowchart for an example method for publishing, indexing,and searching for a product or service, in accordance with an exampleembodiment;

FIG. 3 is a block diagram of an example apparatus for aggregating andcomparing multi-tab content in accordance with an example embodiment;

FIG. 4 is a diagram of a workflow for aggregating and comparingmulti-tab content in accordance with an example embodiment;

FIG. 5 is a flowchart for an example method for selecting tabs, creatinga comparison and communicating the comparison from operations 416, 420and 424 from FIG. 4 , in accordance with an example embodiment;

FIG. 6A-6C illustrates an example user interface for conducting aproduct or service query (FIGS. 6A-6B) and an example of a userinterface for displaying the results of the query including a comparisonbrowser interface_(FIG. 6C), in accordance with an example embodiment;

FIG. 7 illustrates an example user interface displaying the comparisonbrowser interface, in accordance with an example embodiment;

FIG. 8 is a block diagram illustrating an example mobile device,according to an example embodiment; and

FIG. 9 is a block diagram of a machine within which instructions may beexecuted for causing the machine to perform any one or more of themethodologies discussed herein.

DETAILED DESCRIPTION

In the following detailed description of example embodiments of theinvention, reference is made to specific examples by way of drawings andillustrations. These examples are described in sufficient detail toenable those skilled in the art to practice the invention, and serve toillustrate how the invention may be applied to various purposes orembodiments. Other example embodiments of the invention exist and arewithin the scope of the invention, and logical, mechanical, electrical,and other changes may be made without departing from the scope or extentof the present invention. Features or limitations of various embodimentsof the invention described herein, however essential to the exampleembodiments in which they are incorporated, do not limit the inventionas a whole, and any reference to the invention, its elements, operation,and application do not limit the invention as a whole but serve only todefine these example embodiments. The following detailed descriptiondoes not, therefore, limit the scope of the invention, which is definedonly by the appended claims.

Generally, methods, apparatus, and systems for user-interfaceenhancement and, in one example, the facilitation of user navigation indisplay screens are disclosed. Online shoppers typically open multiplebrowser interfaces, such as browser tabs or browser windows (also knownas tabs and windows, respectively, herein), of an Internet browser toview and compare different items. As a browser program is aware of theopen browser interfaces, the content of the open browser interfaces canbe accessed and the item descriptions on each page (such as a web page)can be retrieved to generate a comparison of items for the user. Thecomparison may be displayed, for example, as a table with a row for eachitem and a column for each feature, or the features of other identifieditems could be displayed as an overlay on the web page of the currentlyselected item or browser interface. The table may be displayed via adedicated browser interface, as an overlay on the page of the currentlyselected item or browser interface, and the like. In one exampleembodiment, free text summaries of each compared item may be displayedin a browser interface, as an overlay on an open browser interface, andthe like.

In one example embodiment, web pages containing descriptions of similaritems for use in the comparison may be identified by a common URLdomain; by metadata associated with the web page, item, browserinterface, or any combination thereof; by an analysis of the itemdescriptions; or any combination thereof.

FIG. 1A is a network diagram depicting a client-server system 140,within which one example embodiment may be deployed. A networked system102, in the example form of a network-based publication system, providesserver-side functionality, via a network 142 (e.g., the Internet or awide area network (WAN)), to one or more clients. FIG. 1A illustrates,for example, a web client 106 (e.g., a browser, such as the InternetExplorer® browser developed by Microsoft® Corporation of Redmond, Wash.State) and a programmatic client 144 executing on respective clientmachines 110 and 112.

An application program interface (API) server 114 and a web server 116are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 118. The application servers 118host one or more publication marketplace applications 120 and paymentapplications 122. The application servers 118 are, in turn, shown to becoupled to one or more database servers 124 that facilitate access toone or more databases 126.

The publication marketplace applications 120 provide a number ofpublication functions and services to users who access the networkedsystem 102. The payment applications 122 likewise provide a number ofpayment services and functions to users. The payment applications 122may allow users to accumulate value (e.g., in a commercial currency,such as the U.S. dollar, or a proprietary currency, such as “points”) inaccounts, and then later to redeem the accumulated value for products(e.g., goods or services) that are made available via the publicationmarketplace applications 120. While the publication marketplace andpayment applications 120 and 122 are shown in FIG. 1A to both form partof the networked system 102, it will be appreciated that, in alternativeembodiments, the payment applications 122 may form part of a paymentservice that is separate and distinct from the networked system 102.

Further, while the client-server system 140 shown in FIG. 1A employs aclient-server architecture, the embodiments are, of course, not limitedto such an architecture, and could equally well find application in adistributed, or peer-to-peer, architecture system, for example. Thevarious publication marketplace and payment applications 120 and 122could also be implemented as standalone software programs, which do notnecessarily have networking capabilities.

The web client 106 accesses the various publication marketplace andpayment applications 120 and 122 via the web interface supported by theweb server 116. Similarly, the programmatic client 144 accesses thevarious services and functions provided by the publication marketplaceand payment applications 120 and 122 via the programmatic interfaceprovided by the API server 114. The programmatic client 144 may, forexample, be a seller application (e.g., the Turbo Lister applicationdeveloped by eBay Inc., of San Jose, Calif.) to enable sellers to authorand manage publications on the networked system 102 in an offlinemanner, and to perform batch-mode communications between theprogrammatic client 144 and the networked system 102.

FIG. 1A also illustrates a third-party application 128, executing on athird-party server machine 136, as having programmatic access to thenetworked system 102 via the programmatic interface provided by the APIserver 114. For example, the third-party application 128 may, utilizinginformation retrieved from the networked system 102, support one or morefeatures or functions on a website hosted by the third party. Thethird-party website may, for example, provide one or more promotional,publication, or payment functions that are supported by the relevantapplications of the networked system 102.

FIG. 1B is a block diagram illustrating example publication marketplaceand payment applications 120 and 122 that, in one example embodiment,are provided as part of application server(s) 118 in the networkedsystem 102. The applications 120 and 122 may be hosted on dedicated orshared server machines (not shown) that are communicatively coupled toenable communications between server machines. The applications 120 and122 themselves are communicatively coupled (e.g., via appropriateinterfaces) to each other and to various data sources, so as to allowinformation to be passed between the applications 120 and 122 or so asto allow the applications 120 and 122 to share and access common data.The applications 120 and 122 may furthermore access one or moredatabases 126 via the database servers 124.

The networked system 102 may provide a number of publication andprice-setting mechanisms whereby a seller may list (or publishinformation concerning) goods or services for sale, a buyer can expressinterest in or indicate a desire to purchase such goods or services, anda price can be set for a transaction pertaining to the goods orservices. To this end, the publication marketplace and paymentapplications 120 and 122 are shown to include at least one publicationapplication 148 and one or more auction applications 151, which supportauction-format publication and price setting mechanisms (e.g., English,Dutch, Vickrey, Chinese, Double, Reverse auctions). The various auctionapplications 151 may also provide a number of features in support ofsuch auction-format publications, such as a reserve price featurewhereby a seller may specify a reserve price in connection with apublication and a proxy-bidding feature whereby a bidder may invokeautomated proxy bidding.

A number of fixed-price applications 152 support fixed-price publicationformats (e.g., the traditional classified advertisement-type publicationor a catalogue publication) and buyout-type publications. Specifically,buyout-type publications (e.g., including the Buy-It-Now (BIN)technology developed by eBay Inc., of San Jose, Calif.) may be offeredin conjunction with auction-format publications, and allow a buyer topurchase goods or services, which are also being offered for sale via anauction, for a fixed-price that is typically higher than the startingprice of the auction.

Store applications 154 allow a seller to group publications within a“virtual” store, which may be branded and otherwise personalized by andfor the seller. Such a virtual store may also offer promotions,incentives, and features that are specific and personalized to arelevant seller.

Reputation applications 156 allow users who transact, utilizing thenetworked system 102, to establish, build, and maintain reputations,which may be made available and published to potential trading partners.Consider that where, for example, the networked system 102 supportsperson-to-person trading, users may otherwise have no history or otherreference information whereby the trustworthiness and credibility ofpotential trading partners may be assessed. The reputation applications156 allow a user (e.g., through feedback provided by other transactionpartners) to establish a reputation within the networked system 102 overtime. Other potential trading partners may then reference such areputation for the purposes of assessing credibility andtrustworthiness.

Personalization applications 158 allow users of the networked system 102to personalize various aspects of their interactions with the networkedsystem 102. For example, a user may, utilizing an appropriatepersonalization application 158, create a personalized reference page atwhich information regarding transactions to which the user is (or hasbeen) a party may be viewed. Further, a personalization application 158may enable a user to personalize publications and other aspects of theirinteractions with the networked system 102 and other parties.

The networked system 102 may support a number of publications that arecustomized, for example, for specific geographic regions. A version ofthe networked system 102 may be customized for the United Kingdom,whereas another version of the networked system 102 may be customizedfor the United States. Each of these versions may operate as anindependent publication or may be customized (or internationalized)presentations of a common underlying publication. The networked system102 may accordingly include a number of internationalizationapplications 160 that customize information (or the presentation ofinformation by the networked system 102) according to predeterminedcriteria (e.g., geographic, demographic or publication criteria). Forexample, the internationalization applications 160 may be used tosupport the customization of information for a number of regionalwebsites that are operated by the networked system 102 and that areaccessible via respective web servers 116.

Navigation of the networked system 102 is facilitated by one or morenavigation applications 162. For example, a search application (as anexample of a navigation application 162) enables keyword searches ofpublications published via the networked system 102. A browseapplication allows users to browse various category, catalogue, orinventory data structures according to which publications may beclassified within the networked system 102. Various other navigationapplications 162 may be provided to supplement the search and browsingapplications.

In order to make publications available via the networked system 102 asvisually informative and attractive as possible, the applications 120and 122 include one or more imaging applications 164, which usersutilize to upload images for inclusion within publications. The imagingapplication 164 also operates to incorporate images within viewedpublications. The imaging applications 164 may also support one or morepromotional features, such as image galleries that are presented topotential buyers. For example, sellers may pay an additional fee to havean image included within a gallery of images for promoted items.

Publication creation applications 166 allow sellers to convenientlyauthor publications pertaining to goods or services that they wish totransact via the networked system 102, and publication managementapplications 168 allow sellers to manage such publications.Specifically, where a particular seller has authored or published alarge number of publications, the management of such publications maypresent a challenge. The publication management applications 168 providea number of features (e.g., auto-relisting, inventory level monitors) toassist the seller in managing such publications. One or morepost-publication management applications 170 also assist sellers with anumber of activities that typically occur post-publication. For example,upon completion of an auction facilitated by one or more auctionapplications 151, a seller may wish to leave feedback regarding aparticular buyer. To this end, a post-publication management application170 may provide an interface to one or more reputation applications 156,so as to allow the seller conveniently to provide feedback regardingmultiple buyers to the reputation applications 156.

Dispute resolution applications 172 provide mechanisms whereby disputesarising between transacting parties may be resolved. For example, thedispute resolution applications 172 may provide guided procedureswhereby the parties are guided through a number of steps in an attemptto settle a dispute. In the event that the dispute cannot be settled viathe guided procedures, the dispute may be escalated to a third-partymediator or arbitrator.

A number of fraud prevention applications 174 implement fraud detectionand prevention mechanisms to reduce the occurrence of fraud within thenetworked system 102.

Messaging applications 176 are responsible for the generation anddelivery of messages to users of the networked system 102 (e.g.,messages advising users regarding the status of publications at thenetworked system 102 (e.g., providing “outbid” notices to bidders duringan auction process or to provide promotional and merchandisinginformation to users)). Respective messaging applications 176 mayutilize any one of a number of message delivery networks and platformsto deliver messages to users. For example, messaging applications 176may deliver electronic mail (e-mail), instant message (IM), ShortMessage Service (SMS), text, facsimile, or voice (e.g., voice over IP(VoIP)) messages via the wired (e.g., the Internet), plain old telephoneservice (POTS), or wireless (e.g., mobile, cellular, WiFi, WiMAX)networks 142.

Merchandising applications 178 support various merchandising functionsthat are made available to sellers to enable sellers to increase salesvia the networked system 102. The merchandising applications 178 alsooperate the various merchandising features that may be invoked bysellers, and may monitor and track the success of merchandisingstrategies employed by sellers.

The networked system 102 itself, or one or more parties that transactvia the networked system 102, may operate loyalty programs that aresupported by one or more loyalty/promotion applications 180. Forexample, a buyer may earn loyalty or promotion points for eachtransaction established and/or concluded with a particular seller, andbe offered a reward for which accumulated loyalty points can beredeemed.

FIG. 1C shows a block diagram of an example system 100 for aggregatingand comparing multi-tab content in accordance with an exampleembodiment. In one example embodiment, the system 100 comprises one ormore user devices 104-1, 104-2 and 104-N (known as user devices 104hereinafter), one or more seller processing systems 108-1, 108-2 and108-N (known as seller processing systems 108 hereinafter), an itemidentification processing system 130, a comparison processing system150, and a network 115.

In one embodiment, each of the user devices 104 in FIG. 1C may a clientmachine 110 in FIG. 1A and each of the seller processing systems 108 inFIG. 1C may be a client machine 112 in FIG. 1A. In one embodiment, theitem identification processing system 130 and the comparison processingsystem 150 may be included in the application servers 118 in FIG. 1A.

Each user device (e.g., 104-1) may be a personal computer (PC), a mobilephone, a personal digital assistant (PDA), a refrigerator, anautomobile, a camera, a network-connected device, or any otherappropriate computer device. Each user device (104-1, 104-2, 104-N) mayinclude a user interface module 308, described more fully below by wayof example in conjunction with FIG. 3 . In one example embodiment, theuser interface module 308 may comprise a web browser program. Although adetailed description is only illustrated for user device 104-1, it isnoted that each of the other user devices (e.g., user device 104-2through user device 104-N) may have corresponding elements with the samefunctionality.

The seller processing systems 108, the item identification processingsystem 130, and the comparison processing system 150 may be a server,client, or other processing device that includes an operating system forexecuting software instructions. The seller processing systems 108provide items for sale to a consumer, and may facilitate the search forand purchase of the items by a variety of consumers.

The network 115 may be a local area network (LAN), a wireless network, ametropolitan area network (MAN), a wide area network (WAN), a wirelessnetwork, a network of interconnected networks, the public switchedtelephone network (PSTN), and the like.

Each user device 104 may receive a query for item information from auser via an input device such as keyboard, mouse, electronic pen, etc.An item may comprise a product, a service, or both. The correspondinginformation may be in the form of an item publication.

The item identification processing system 130 of an online publicationsystem may store and obtain information related to items available forsale. Each item publication may comprise a detailed description for theitem, a picture of the item, attributes of the item, and the like. Theitem associated with the item publication may be a good or product(e.g., a tablet computer) or a service (e.g., a round of golf orappliance repair) that may be transacted (e.g., exchanging, sharinginformation about, buying, selling, making a bid on, and the like). Theitem publication may also include a title, a category (e.g.,electronics, sporting goods, books, antiques, and the like), andattributes and tag information (e.g., color, size, and the like). Thecomparison processing system 150 generates a comparison of network-basedcontent and item descriptions, as described more fully below by way ofexample in conjunction with FIGS. 4 and 5 .

Referring back to the user device 104-1, the query received from theuser of user device 104-1 may comprise one or more keywords. The userdevice 104-1 may transmit the query to the item identificationprocessing system 130 via the network 115. The item identificationprocessing system 130 may attempt to match the query keywords with thetitle, the category, the tag information, and/or any other field in theitem publication using a search engine and may identify one or more itempublications that satisfy the query. The item identification processingsystem 130 may retrieve and then sort the item publications in thesearch result in a known manner.

The search result list may comprise a list of available items of varyingdegrees of relevance to the particular product or product type for whichthe consumer is searching. The consumer may select from the searchresult list one or more items that correspond more closely to theconsumer's search intention, for example, in order to obtain additionalinformation on the item, or the consumer may apply one or more filtersand may resubmit the query.

FIG. 2 shows a flowchart for an example method 200 for publishing,indexing, and searching for a product or service, in accordance with anexample embodiment. In one example embodiment, a seller may list an itemfor sale (operation 204). The seller may, for example, select a categoryfor the item, submit a description of the item, submit a picture of theitem, manually set attributes of the item, and the like. In one exampleembodiment, a seller simply requests that the device be listed for saleby, for example, clicking on a “sell this” icon.

An item publication is created in, for example, an item publicationdatabase (operation 208). The publication may include, for example,attributes of the item and terms of the sale offer. During the itempublication operation 208, an identification number for the itempublication may be assigned, and the publication may be authenticatedand scanned to check for conformance with one or more publicationpolicies. The listed item is indexed (operation 212) in a known mannerto facilitate future searches for the item.

A consumer launches a search or query for one or more items (operation216). For example, a consumer may initiate a search using the keywords“smartphone.” A corresponding query is prepared (operation 220). Forexample, a spell check may be performed on the query terms and a searchexpression may be generated based on the provided search terms.

The query is executed on, for example, the items that have been indexedin the system (operation 224). For example, the prepared query ismatched against the index that was updated during operation 212.

In response to the execution of the query, a search result list isobtained (operation 228). The search result list may be analyzed and anauto-filter mechanism may be enabled or disabled based, for example, onthe obtained search result list. For example, the auto-filter mechanismmay be enabled if the count of items in the search result list exceeds athreshold value or if the auto-filter mechanism has been enabled by auser.

The search result list is prepared for presentation (operation 232). Forexample, the search result list may be filtered, sorted, ranked, orformatted based, for example, on the analysis of the search result listperformed and based on an identified set of search filters.

The prepared search result list is displayed (operation 236). Inresponse to reviewing the displayed search result list, one or more itemselections from one or more displayed item pages may be obtained from auser (operation 240).

The user device 104 may be used by a user, such as a customer, toconduct a search for a product, service, and the like; to view searchresults; and to request generation of and access to a comparison of itemdescriptions.

FIG. 3 is a block diagram of an example apparatus 300 for aggregatingand comparing multi-tab content in accordance with an exampleembodiment. In some embodiments, the apparatus 300 may include the itemidentification processing system 130 and/or the comparison processingsystem 150 in FIG. 1C. In one embodiment, the apparatus 300 is includedin the one or more application servers 118 in FIG. 1A. In otherembodiments, the apparatus 300 is included in each user device (e.g.,104-1) in FIG. 1C. In some embodiments, the elements of apparatus 300illustrated in FIG. 3 are included in a combination of: the itemidentification processing system 130, the comparison processing system150, and any one of the user devices (e.g., 104-1).

Referring back to FIG. 3 , the apparatus 300 is shown to include aprocessing system 302 that may be implemented on a server, client, orother processing device that includes an operating system 304 forexecuting software instructions. In accordance with an exampleembodiment, the processing system 302 may include a user interfacemodule 308, a search module 312, a page selection module 316, a textanalysis module 320, a semantic topics module 324, a comparisongeneration module 328, and an items database 332. In one exampleembodiment, the apparatus 300 may implement the user device 104, or thecomparison processing system 150.

The user interface module 308 provides an interface for conducting asearch for a product, service, and the like; for viewing search results;and for requesting the generation of and access to a comparison ofnetwork-based content and item descriptions. A user may enter adescription of or keywords associated with a product or service via theinterface and an item description(s) may be obtained and presented via abrowser interface. The item description may be obtained from the searchmodule 312.

The search module 312 obtains a description of or keywords associatedwith a product, service, or both via the user interface module 308, andconducts a query of, for example, the seller processing systems 108 orthe item identification processing system 130, for the product, service,or both. The search results may be presented to a user via the userinterface module 308 as, for example, a list of available items. Theuser may select one of the items from the list to trigger the generationof a browser interface that features a webpage and an item descriptionfor the corresponding item.

The page selection module 316 selects the browser interface to be usedin the generation of the comparison. The user may select the browserinterface via the user interface module 308, the page selection module316 may automatically select the browser interface, or both. Theautomatic selection of the browser interface may be performed bysearching for similar items based on the information provided by thetext analysis module 320, the semantic topics module 324, or both. Theautomatic search may be for items that were listed in the search resultlist, items that are similar to items that were listed in the searchresult list, items that are similar to the items described in thebrowser interface(s) selected by the user, and the like.

The text analysis module 320 analyzes a webpage to determine the itemdescribed on the webpage, various features of the item, and the like.The topic(s) and semantic structure of the textual content of thewebpage may be determined using machine learning and natural languageprocessing, as described more fully below (the topic may be defined by acluster of words that capture the topic).

The semantic topics module 324 determines a unique set of semantictopics for the content of each browser interface. The semantic topicsmodule 324 may also determine a unique set of semantic topics for aparticular sentence(s) of the content of each browser interface. Thesemantic topic may identify the type, model, brand, and the like of theitem described on the webpage or one or more features of the item. Inone example embodiment, a topic model (also known as a statistical modelor a probabilistic topic model) is used to determine the topic of thewebpage based, for example, on the frequency of occurrence of differentwords in the review. For example, the frequency of occurrence of thewords “lens,” “battery,” “microphone,” and “speaker” may vary based onwhether the content describes a camera or a smart phone that includes acamera. Moreover, the relative frequency of the cited words may indicatethe features described in the webpage. The semantic topic(s) may bestored in the items database 332.

The comparison generation module 328 compiles a comparison of variousfeatures of the items described on the selected browser interface(s)based on, for example, the semantic topic identified by the semantictopics module 324. The comparison may be in the form of a table,free-form text, and the like. The compiled comparison may be stored inthe items database 332.

FIG. 4 is a diagram of a workflow 400 for aggregating and comparingmulti-tab content in accordance with an example embodiment.

In one example embodiment, the apparatus 300 receives a query (operation408), such as a query for a product or service. The query may besubmitted by a user via, for example, the user interface module 308. Inone embodiment, the query is a query designated for applicationserver(s) 118 in the networked system 102. The query may be initiated bythe search module 312 (operation 408), as described more fully above inconjunction with FIG. 3 . The search results are obtained from theseller processing systems 108 or the item identification processingsystem 130 and displayed via the user interface module 308 (operation412). FIG. 6A illustrates an example user interface 600 for conducting aproduct or service query, in accordance with an example embodiment. Aquery field 604 may be used to enter a query for a product or service.The query may be a text-based query for, for example, a smartphoneproduct. One or more items may be identified via a table where each row608-1, . . . 608-N corresponds to an item and includes an itemidentifier (product ID), an identifier for the source of the itemdescription (such as a website), an item title (product), an item orproduct description, and the like. In some embodiments, the userinterface 600 is generated by the user interface module 308, the userdevice 104, or a combination thereof. As shown in FIG. 6A, the searchresults may comprise, for example, a single line of a table for eachidentified item, where each line identifies the name of the product(including brand and model number) and, for example, a hyperlink to thewebpage that describes the item. A user may select one or more of thehyperlinks to instantiate a browser interface for displaying the webpageof the selected item. In some instances, the user may select and openthe one or more hyperlinks in separate tabs on the browser interface 600or separate windows (not shown) of the browser interface. FIG. 6Billustrates an example user interface 601 that includes a plurality oftabs 609-1, . . . , 609-M (M>1). Each of the tabs 609-1, . . . , 609-Mdisplays a webpage for a different selected item. For example, a usersearching for washing machines may open a different tab for each of thewashing machines that he is considering. Users may thus performcomparison-shopping using the multiple tabs. Instead of selecting andopening a hyperlink on a separate tab, the user may also have submittedanother query on a separate tab (e.g., 609-2) for the same item (e.g.,washing machines) and opened one or more hyperlinks on that separate tab(e.g., 609-2) or a different tab (e.g., 609-3).

In some embodiments, in addition to the user having submitted a query tothe apparatus 300 designated for the application server(s) 118 in thenetworked system 102 (e.g., a first marketplace website), the user mayhave submitted his query to a separate server via a separate marketplacewebsite. In this example, one of the tabs (e.g., 609-4) may bedisplaying the separate marketplace website. Accordingly, the tabs609-1, . . . , 609-M in FIG. 6B may include queries sent to differentmarketplace websites. The user may thus have submitted queries for theitem (e.g., washing machine) on different marketplace websites open indifferent tabs of the browser interface 601. In this example, thebrowser interface includes a plurality of tabs 609-1, . . . , 609-M ofthe browser interface 601 displaying washing machines that are beingsold by various different merchants and hosted by different systems 102.In this example, at least one of the plurality of tabs (e.g., 609-1) ofthe browser interface 601 is the website associated with the applicationserver(s) 118 in the networked system 102.

Referring back to FIG. 3 , apparatus 300 selects tabs (or windows)displayed on the user interface 601 (operation 416) in FIG. 6B, togenerate a comparison of the products for the user (operation 420). Inone embodiment, the apparatus 300 generates the comparison automaticallyin response to detecting the user's browser interface 601 includes twoor more tabs (or windows) displaying items of the same type (e.g.,different models of washing machines). In one embodiment, to select tabsto generate a comparison, the apparatus 300 determines type of item thatis associated with the tabs 609-1, . . . , 609-M. The apparatus 300 maydetermine the type of item using, for example, the Uniform ResourceLocator (URL) address of the webpage being displayed in the tab, thetext description of the webpage being displayed in the tab, the image orimages included in the webpage being displayed in the tab, etc. In oneembodiment, the apparatus 300 may determine the type of item usingkeywords included in the webpage. For example, the keywords may behashtagged keywords (e.g., hashtags), or tagged keywords (e.g., tags)included in the webpage.

The apparatus 300 may also determine a plurality of different types ofitems. For example, the user may be searching for washing machines andmobile phones. Accordingly, some of the tabs may display differentmodels of washing machines while other tabs may display different modelsof mobile phones. In this embodiment, the apparatus 300 may select twogroups of tabs: the first group of tabs is associated with washingmachines and the second group of tabs is associated with mobile phones.In another embodiment, the user may actively select the one or more ofthe browser interfaces for the generation of the comparison (operation416).

In another embodiment, in addition to detecting that the user's browserinterface 601 includes two or more tabs (or windows) displaying items ofthe same type, the apparatus 300 may assess the user's online footprintusing data from the website. For example, the apparatus 300 maydetermine that the user's online footprint indicates that the user hasbeen navigating to various websites associated with a specific type ofitem (e.g., washing machines). The data from the website may includesession data or information, cookies, or online navigation data storedin the user's device's local memory, etc.

The apparatus 300 then creates a comparison of the item descriptionscorresponding to the selected tabs (operation 420). The comparisoncreated may include a chart or table displaying features of each item ofthe same type. The features of each item in the comparison may befeatures important to the user who is comparing and contrasting theitems of the same type for sale. For example, the features of each itemin the comparison may include the model, the make, the size, the price,etc. In one embodiment, when the apparatus 300 selected more than onegroup of tabs in operation 416, the apparatus 300 creates comparisonsfor each of the groups of tabs selected. For example, the apparatus 300generates a comparison for the first group of tabs associated withwashing machines and generates a separate comparison for the secondgroup of tabs associated with mobile phones.

In one embodiment, the apparatus 300 may determine that a websiteincludes a plurality of items of the same type within the same webpage(e.g., a search result listing page). In this embodiment, the apparatus300 may select two or items of the same type within the same webpage andgenerate the comparison of the selected items.

The apparatus 300 then causes the comparison to be communicated to theuser device 104 and to be displayed on the user device 104 (operation424). The comparison may be displayed on a comparison browser interface(FIG. 7 ), or may be displayed as an overlay on an existing browser tabor window (FIG. 6C). In one embodiment, the comparison displayed on theuser's device 104 may be saved by the user on the user's device 104, maybe sent to another electronic device from the user's device 104 viaelectronic communication (e.g., email, direct message or chat services,SMS, etc.), or shared with another electronic device from the user'sdevice 104 using a social media platform.

FIG. 7 illustrates an example user interface 700 for viewing thecomparison browser interface, in accordance with an example embodiment.The comparison browser interface 700 may display the comparison createdin operation 420. As shown in FIG. 7 , the comparison browser interface700 displays a table having a row 704-1, . . . 704-N corresponding toeach item from the selected tabs. Each row 704 may include an itemidentifier or image, an item name, and information regarding one or morefeatures of the corresponding item. In FIG. 7 , items from the selectedtabs in FIG. 6B are mobile phones and the features may include thebattery duration (e.g., Key1: minutes/hours of talk time), the amount ofmemory (e.g., Key2: Gigabytes), the number of pixels in the mobilephone's camera (e.g., Key3: MegaPixels), and the weight of the mobilephone (e.g., KeyN: Oz). While not illustrated, other key features mayinclude the model, the make, the size, the dimensions, the price, theidentification of the seller or seller's website, whether the item isnew or used, etc. In one example embodiment, the comparison browserinterface 700 is generated by the user interface module 308, the userdevice 104, or a combination thereof. The comparison browser interface700 in FIG. 7 may be displayed as a separate window or on a separatetab. When more than one comparison is created in operation 420, theapparatus 300 causes the display of each of the comparisons that arecreated in a separate comparison browser interface 700.

As shown in FIG. 6C, the example user interface 602 illustrates that thecomparison browser interface 700 may be displayed as an overlay to userinterface 601. In one embodiment, the user interface 601 on which thecomparison browser interface 700 is overlaid is a webpage associatedwith application server(s) 118 in the networked system 102. For example,in FIG. 6C, the tab 609-1 of the browser interface 601 is the websiteassociated with the application server(s) 118 in the networked system102. The tab 609-1 may be displaying the webpage of the selected item orthe webpage listing the results of the query, which includes a pluralityof items associated with the query. In this example, the tab 609-1further displays the comparison browser interface 700 as an overlay(FIG. 6C). When more than one comparison is created in operation 420,the apparatus 300 causes the display of each of the comparisons that arecreated in a separate comparison browser interface 700. For example, thecomparison of the washing machines may be displayed in comparisonbrowser interface 700 that is overlaid on a tab 609-1 that is associatedwith washing machines while the comparison of the mobile phones may bedisplayed in comparison browser interface 700 that is overlaid on a tab609-3 that is associated with mobile phones. In these embodiments, theuser may refer to the comparison browser interface 700 to keep trackefficiently of the items that he is considering for each type of itemfor which he is shopping.

FIG. 5 is a flowchart for an example method 500 for selecting tabs,creating a comparison and communicating the comparison from operations416, 420 and 424 from FIG. 4 , in accordance with an example embodiment.In one example embodiment, one or more of the operations of the method500 may be performed by the user interface module 308, the search module312, the page selection module 316, the text analysis module 320, thesemantic topics module 324, and the comparison generation module 328, orany combination thereof.

In one embodiment, the apparatus selects or obtains a selection of oneor more tabs (operation 504). As discussed in operation 416, theselection may be obtained from a user via the user interface module 308or may be automatically generated by the page selection module 316. Theselection may identify all open tabs and windows, may identify all opentabs and windows that contain item descriptions, may identify all opentabs and windows that contain item descriptions associated with aselected item, or may identify all open tabs and windows that containitem descriptions associated with a selected item or an item similar tothe selected item.

Further to operation 420 in FIG. 4 , the apparatus 300 extracts the itemdescription associated with each selected browser interface from thewebpage being displayed on the corresponding tab (operation 508). Theitem description may be identified by a header in the content of thebrowser interface, by a text in the content of the browser interface, bymetadata associated with the browser interface, and the like. In oneexample embodiment, the entire contents of the selected browserinterface may be considered to be the item description.

Further to operation 420 in FIG. 4 , the apparatus 300 identifies thekey features of each extracted item description and categorizes theidentified key features by feature type (operation 512). In one exampleembodiment, the semantic topics module 324 uses, for example, astatistical model or a probabilistic topic model to identify semantictopics of the item description that may be considered features of theitem, as described more fully above. In one example embodiment, eachtype of item (such as a laptop computer, smart watch, and the like) hasa corresponding list of key features stored, for example, in the itemsdatabase 332. The list of key features may be used to search for therelevant features in the extracted item description, corresponding listof key features, or both. For example, the list of features for asmartphone may include screen size, storage capacity, operating system,battery life and the like. The item description and identified semantictopics may then be searched for each type of feature.

In one example embodiment, the key features are extracted from metadataassociated with the browser interface, the item description, and thelike of the item. The metadata associated with a webpage may include keyfeatures, such as the price, shipping cost, category, color, weight,material, and the like. For example, the metadata associated with awebpage may be the text string:

-   -   Price: “98.99”, Shipping: “Free”, Category: “Flatware &        Silverware”, Color: “Gold”, Weight: “4.35”, Material: “Stainless        Steel”

In another embodiment, extracting the key features may also includeimage extraction from the browser interface and analyzing the imageextracted to determine the key features of the items.

Further to operation 420 in FIG. 4 , the apparatus 300 then generates atable that is populated with a description corresponding to each keyfeature. Each row of the table corresponds to a type of feature and eachcolumn corresponds to the feature details from one of the extracted itemdescriptions (operation 516). Further to operation 424 in FIG. 4 , thetable is communicated to the user device 104 for display (operation520).

Although certain examples are shown and described here, other variationsexist and are within the scope of the invention. It will be appreciated,by those of ordinary skill in the art, that any arrangement, which isdesigned or arranged to achieve the same purpose, may be substituted forthe specific embodiments shown. This application is intended to coverany adaptations or variations of the example embodiments of theinvention described herein. It is intended that this invention belimited only by the claims, and the full scope of equivalents thereof.

FIG. 8 is a block diagram illustrating an example mobile device 800,according to an example embodiment. The mobile device 800 may include aprocessor 802. The processor 802 may be any of a variety of differenttypes of commercially available processors suitable for mobile devices(e.g., an XScale architecture microprocessor, a microprocessor withoutinterlocked pipeline stages (MIPS) architecture processor, or anothertype of processor 802). A memory 804, such as a random access memory(RAM), a flash memory, or another type of memory, is typicallyaccessible to the processor 802. The memory 804 may be adapted to storean operating system (OS) 806, as well as application programs 808, suchas a mobile location-enabled application that may provide location-basedservices (LBSs) to a user. The processor 802 may be coupled, eitherdirectly or via appropriate intermediary hardware, to a display 810 andto one or more input/output (I/O) devices 812, such as a keypad, a touchpanel sensor, a microphone, and the like. Similarly, in someembodiments, the processor 802 may be coupled to a transceiver 814 thatinterfaces with an antenna 816. The transceiver 814 may be configured toboth transmit and receive cellular network signals, wireless datasignals, or other types of signals via the antenna 816, depending on thenature of the mobile device 800. Further, in some configurations, a GPSreceiver 818 may also make use of the antenna 816 to receive GPSsignals.

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied (1) on a non-transitorymachine-readable medium or (2) in a transmission signal) orhardware-implemented modules. A hardware-implemented module is atangible unit capable of performing certain operations and may beconfigured or arranged in a certain manner. In example embodiments, oneor more computer systems (e.g., a standalone, client, or server computersystem) or one or more processors may be configured by software (e.g.,an application or application portion) as a hardware-implemented modulethat operates to perform certain operations as described herein.

In various embodiments, a hardware-implemented module may be implementedmechanically or electronically. For example, a hardware-implementedmodule may comprise dedicated circuitry or logic that is permanentlyconfigured (e.g., as a special-purpose processor, such as a fieldprogrammable gate array (FPGA) or an application-specific integratedcircuit (ASIC)) to perform certain operations. A hardware-implementedmodule may also comprise programmable logic or circuitry (e.g., asencompassed within a general-purpose processor or other programmableprocessor) that is temporarily configured by software to perform certainoperations. It will be appreciated that the decision to implement ahardware-implemented module mechanically, in dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.,configured by software) may be driven by cost and time considerations.

Accordingly, the term “hardware-implemented module” should be understoodto encompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarily ortransitorily configured (e.g., programmed) to operate in a certainmanner or to perform certain operations described herein. Consideringembodiments in which hardware-implemented modules are temporarilyconfigured (e.g., programmed), each of the hardware-implemented modulesneed not be configured or instantiated at any one instance in time. Forexample, where the hardware-implemented modules comprise ageneral-purpose processor configured using software, the general-purposeprocessor may be configured as respective different hardware-implementedmodules at different times. Software may accordingly configure aprocessor, for example, to constitute a particular hardware-implementedmodule at one instance of time and to constitute a differenthardware-implemented module at a different instance of time.

Hardware-implemented modules can provide information to, and receiveinformation from, other hardware-implemented modules. Accordingly, thedescribed hardware-implemented modules may be regarded as beingcommunicatively coupled. Where multiples of such hardware-implementedmodules exist contemporaneously, communications may be achieved throughsignal transmission (e.g., over appropriate circuits and buses thatconnect the hardware-implemented modules). In embodiments in whichmultiple hardware-implemented modules are configured or instantiated atdifferent times, communications between such hardware-implementedmodules may be achieved, for example, through the storage and retrievalof information in memory structures to which the multiplehardware-implemented modules have access. For example, onehardware-implemented module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware-implemented module may then,at a later time, access the memory device to retrieve and process thestored output. Hardware-implemented modules may also initiatecommunications with input or output devices, and can operate on aresource (e.g., a collection of information).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or more processors orprocessor-implemented modules. The performance of certain of theoperations may be distributed among the one or more processors, not onlyresiding within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment, or a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., application program interfaces (APIs)).

Example embodiments may be implemented in digital electronic circuitry,or in computer hardware, firmware, or software, or in combinations ofthem. Example embodiments may be implemented using a computer programproduct, e.g., a computer program tangibly embodied in an informationcarrier, e.g., in a machine-readable medium for execution by, or tocontrol the operation of, data processing apparatus, e.g., aprogrammable processor, a computer, or multiple computers.

A computer program can be written in any form of programming language,including compiled or interpreted languages, and it can be deployed inany form, including as a standalone program or as a module, subroutine,or other unit suitable for use in a computing environment. A computerprogram can be deployed to be executed on one computer or on multiplecomputers at one site or distributed across multiple sites andinterconnected by a communication network.

In example embodiments, operations may be performed by one or moreprogrammable processors executing a computer program to performfunctions by operating on input data and generating output. Methodoperations can also be performed by, and apparatus of exampleembodiments may be implemented as, special purpose logic circuitry,e.g., an FPGA or an ASIC.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. Inembodiments deploying a programmable computing system, it will beappreciated that both hardware and software architectures requireconsideration. Specifically, it will be appreciated that the choice ofwhether to implement certain functionality in permanently configuredhardware (e.g., an ASIC), in temporarily configured hardware (e.g., acombination of software and a programmable processor), or in acombination of permanently and temporarily configured hardware may be adesign choice. Below are set out hardware (e.g., machine) and softwarearchitectures that may be deployed, in various example embodiments.

FIG. 9 is a block diagram of a machine in the example form of a computersystem 900 within which instructions may be executed for causing themachine to perform any one or more of the methodologies discussedherein. In one example embodiment, the machine may be the exampleapparatus 300 of FIG. 3 for generating a comparison of network-basedcontent and item descriptions. In alternative embodiments, the machineoperates as a standalone device or may be connected (e.g., networked) toother machines. In a networked deployment, the machine may operate inthe capacity of a server or a client machine in a server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. The machine may be a personal computer (PC), atablet PC, a set-top box (STB), a personal digital assistant (PDA), acellular telephone, a web appliance, a network router, switch, orbridge, or any machine capable of executing instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The example computer system 900 includes a processor 902 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU), orboth), a main memory 904, and a static memory 906, which communicatewith each other via a bus 908. The computer system 900 may furtherinclude a video display unit 910 (e.g., a liquid crystal display (LCD)or a cathode ray tube (CRT)). The computer system 900 also includes analphanumeric input device 912 (e.g., a keyboard), a user interface (UI)navigation (or cursor control) device 914 (e.g., a mouse), a disk driveunit 916, a signal generation device 918 (e.g., a speaker), and anetwork interface device 920.

The drive unit 916 includes a machine-readable medium 922 on which isstored one or more sets of data structures and instructions 924 (e.g.,software) embodying or utilized by any one or more of the methodologiesor functions described herein. The instructions 924 may also reside,completely or at least partially, within the main memory 904 and/orwithin the processor 902 during execution thereof by the computer system900, the main memory 904 and the processor 902 also constitutingmachine-readable media 922. The instructions 924 may also reside withinthe static memory 906.

While the machine-readable medium 922 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore data structures or instructions 924. The term “machine-readablemedium” shall also be taken to include any tangible medium that iscapable of storing, encoding, or carrying the instructions 924 forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present invention, or that iscapable of storing, encoding, or carrying data structures utilized by orassociated with such instructions 924. The term “machine-readablemedium” shall accordingly be taken to include, but not be limited to,solid-state memories, and optical and magnetic media. Specific examplesof machine-readable media 922 include non-volatile memory, including byway of example semiconductor memory devices, e.g., erasable programmableread-only memory (EPROM), electrically erasable programmable read-onlymemory (EEPROM), and flash memory devices; magnetic disks such asinternal hard disks and removable disks; magneto-optical disks; andCD-ROM and DVD-ROM disks.

A “machine-readable medium” may refer to a single storage apparatus ordevice, as well as cloud-based storage systems or storage networks thatinclude multiple storage apparatus or devices. The term“machine-readable medium” shall accordingly be taken to include, but notbe limited to, one or more data repositories in the form of asolid-state memory, an optical medium, a magnetic medium, or anysuitable combination thereof. In some embodiments, a “machine-readablemedium” may also be referred to as a “machine-readable storage device.”

Furthermore, the machine-readable medium 922 is non-transitory in thatit does not embody a propagating or transitory signal. However, labelingthe machine-readable medium 922 as “non-transitory” should not beconstrued to mean that the medium is incapable of movement—the mediumshould be considered as being transportable from one physical locationto another. Additionally, since the machine-readable medium 922 istangible, the medium may be considered to be a machine-readable storagedevice.

The instructions 924 may further be transmitted or received over acommunications network 926 using a transmission medium. The instructions924 may be transmitted using the network interface device 920 and anyone of a number of well-known transfer protocols (e.g., hypertexttransfer protocol (HTTP)). Examples of communications networks 926include a local area network (LAN), a wide area network (WAN), theInternet, mobile telephone networks, plain old telephone (POTS)networks, and wireless data networks (e.g., WiFi and WiMax networks).The term “transmission medium” shall be taken to include any intangiblemedium that is capable of storing, encoding, or carrying theinstructions 924 for execution by the machine, and includes digital oranalog communications signals or other intangible media to facilitatecommunication of such instructions 924.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

Such embodiments of the inventive subject matter may be referred toherein, individually or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any single invention or inventive concept if more thanone is in fact disclosed. Thus, although specific embodiments have beenillustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment.

What is claimed is:
 1. An apparatus for facilitating a comparison ofcontent, the apparatus comprising: one or more hardware processors;memory to store instructions that, when executed by the one or morehardware processors, cause the one or more hardware processors toperform operations comprising: automatically detecting that at least twoopen tabs of a browser are displaying items of a same item type based onat least one of uniform resource locators (URL) addresses associatedwith the at least two open tabs, text descriptions associated with theat least two open tabs, images associated with the at least two opentabs, or keywords associated with the at least two open tabs; andresponsive to automatically detecting that the at least two open tabs ofthe browser are displaying items of the same item type: automaticallygenerating a table and populating the table with a first plurality offeatures of a first item of the detected same item type extracted from afirst tab of the at least two open tabs and a second plurality offeatures of a second item of the detected same item type extracted froma second tab of the at least two open tabs, wherein information from atleast one additional open tab that does not include the detected sameitem type is excluded from the comparison display; and automaticallycausing display of the table within a portion of one of the open tabs,the table being generated and displayed without user input to selectwhich open tabs to be included in the table and which open tabs to beexcluded from the table.
 2. The apparatus of claim 1, wherein the firsttab and the second tab are associated with a same URL domain.
 3. Theapparatus of claim 1, wherein the automatically detecting includesperforming text analysis on the at least two open tabs.
 4. The apparatusof claim 1, wherein the operations further comprise extracting the firstplurality of features of the first item of the detected same item typefrom the first tab of the at least two open tabs and extracting thesecond plurality of features of the second item of the detected sameitem type from the second tab of the at least two open tabs.
 5. Theapparatus of claim 4, wherein extracting the first and second pluralityof features includes extracting the first and second plurality offeatures from metadata associated with item descriptions in therespective first and second tabs of the at least two open tabs.
 6. Theapparatus of claim 4, wherein extracting the first and second pluralityof features includes identifying one or more semantic topics.
 7. Amethod for facilitating a comparison of content in a user interface, themethod comprising: automatically detecting that a first group of opentabs of a browser are displaying items of a first item type and a secondgroup of open tabs of the browser are displaying items of a second itemtype based on at least one of uniform resource locators (URL) addressesassociated with the open tabs, text descriptions associated with theopen tabs, images associated with the open tabs, or keywords associatedwith the open tabs; responsive to automatically detecting that the firstgroup of open tabs of the browser are displaying items of the first itemtype, automatically generating a first table and populating the firsttable with a first plurality of features of a first item of the detectedfirst item type extracted from a first tab of the open tabs and a secondplurality of features of a second item of the detected first item typeextracted from a second tab of the open tabs; responsive toautomatically detecting that the second group of open tabs aredisplaying items of the second item type, automatically generating asecond table and populating the second table with a third plurality offeatures of a third item of the detected second item type extracted froma third tab of the open tabs and a fourth plurality of features of afourth item of the detected second item type extracted from a fourth tabof the open tabs; and automatically causing display of the first tableand the second table within a portion of one of the open tabs.
 8. Themethod of claim 7, wherein the first tab and the second tab areassociated with a first URL domain, and the third tab and the fourth tabare associated with a second URL domain.
 9. The method of claim 7,wherein the automatically detecting includes performing text analysis onthe open tabs.
 10. The method of claim 7, wherein the first group ofopen tabs are detected as displaying the first item type and the secondgroup of open tabs are detected as displaying the second item type basedat least in part on the URL addresses of webpages being displayed in theopen tabs.
 11. The method of claim 7, wherein the first group of opentabs are detected as displaying the first item type and the second groupof open tabs are detected as displaying the second item type based atleast in part on the text descriptions of webpages being displayed inthe open tabs.
 12. The method of claim 7, wherein the first group ofopen tabs are detected as displaying the first item type and the secondgroup of open tabs are detected as displaying the second item type basedat least in part on the images included in webpages being displayed inthe open tabs.
 13. The method of claim 7, wherein the first group ofopen tabs are detected as displaying the first item type and the secondgroup of open tabs are detected as displaying the second item type basedat least in part on the keywords included in webpages being displayed inthe open tabs.
 14. The method of claim 7, further comprising extractingthe first plurality of features of the first item of the detected firstitem type from the first tab of the open tabs and extracting the secondplurality of features of the second item of the detected first item typefrom the second tab of the open tabs.
 15. The method of claim 14,wherein extracting the first and second plurality of features includesextracting the first and second plurality of features from metadataassociated with item descriptions in the respective first and secondtabs of the open tabs.
 16. The method of claim 14, wherein extractingthe first and second plurality of features includes identifying one ormore semantic topics.
 17. The method of claim 7, wherein the first groupof open tabs are detected as displaying the first item type and thesecond group of open tabs are detected as displaying the second itemtype based on at least two of the uniform resource locators (URL)addresses associated with the open tabs, the text descriptionsassociated with the open tabs, the images associated with the open tabs,and the keywords associated with open tabs.
 18. A non-transitorycomputer-readable medium embodying instructions that, when executed by aprocessor, perform operations comprising: automatically detecting that afirst group of open tabs of a browser are displaying items of a firstitem type and a second group of open tabs of the browser are displayingitems of a second item type based on at least one of uniform resourcelocators (URL) addresses associated with the open tabs, textdescriptions associated with the open tabs, images associated with theopen tabs, or keywords associated with the open tabs; responsive toautomatically detecting that the first group of open tabs of the browserare displaying items of the first item, automatically generating a firsttable and populating the first table with a first plurality of featuresof a first item of the detected first item type extracted from a firsttab of the open tabs and a second plurality of features of a second itemof the detected first item type extracted from a second tab of the opentabs; responsive to automatically detecting that the second group ofopen tabs are displaying items of the second item type, automaticallygenerating a second table and populating the second table with a thirdplurality of features of a third item of the detected second item typeextracted from a third tab of the open tabs and a fourth plurality offeatures of a fourth item of the detected second item type extractedfrom a fourth tab of the open tabs, wherein information from at leastone additional open tab that does not include the detected first itemtype or the detected second item type is excluded from the first tableand the second table; and automatically causing display of the firsttable and the second table within a portion of one of the open tabs, thefirst and second tables being generated and displayed without user inputto select which open tabs to be included in the first table and thesecond table and which open tabs to be excluded from the first table andthe second table.
 19. The non-transitory computer-readable medium ofclaim 18, wherein the operations further comprise extracting the thirdplurality of features of the third item of the detected second item typefrom the third tab of the open tabs and extracting the fourth pluralityof features of the fourth item of the detected second item type from thefourth tab of the open tabs.
 20. The non-transitory computer-readablemedium of claim 18, wherein the automatically detecting includesperforming text analysis on the open tabs.